﻿using LastLandClient.Data;

using Up2Link.SegString;
using System;

namespace LastLandClient.Core.MsgProcessor
{
    public class CMsgOKInfo : IMessageProcessor
    {
        public void ProcessMessage(CMessageSS _msg)
        {
            String content = _msg.MsgContent;
            String[] data = content.Split("\t".ToCharArray());

            switch (data[0])
            {
                case "server":
                    CData.console.SendOutput("当前在线玩家：" + data[1] + " | 已注册玩家：" + data[2]);
                    break;
                case "account":
                    if (data[1].Equals("1")) CData.console.SendOutput("当前角色：存活");
                    else CData.console.SendOutput("当前角色：死亡");
                    CData.console.SendOutput("死亡角色总数：" + data[2]);
                    break;
                case "world":
                    CData.console.SendOutput("地图尺寸：" + data[1] + "(宽) × " + data[2] + "(高)");
                    CData.console.SendOutput("国家数量：" + data[3] + " | 已被占领的地图格：" + data[4]);
                    break;
                case "character":
                    CData.console.SendOutput("生命值：" + data[1] + "/" + data[2] + "(" + data[13] + ")");
                    CData.console.SendOutput("近战攻击：" + data[3] + "(" + data[10] + ") | 投射攻击：" + data[4] + "(" + data[11] + ")");
                    CData.console.SendOutput("护甲：" + data[6] + "(" + data[14] + ") | 盾牌：" + data[7] + "(" + data[15] + ")");
                    CData.console.SendOutput("攻城攻击：" + data[5] + "(" + data[12] + ")");
                    CData.console.SendOutput("材料：" + data[8] + " | 金钱：" + data[9]);
                    break;
                case "grid":
                    if (data[1].Equals("1")) CData.console.SendOutput("已被占领");
                    else CData.console.SendOutput("未被占领");
                    if (data[2].Equals("1")) CData.console.SendOutput("敌方领地");
                    if (data[3].Equals("1")) CData.console.SendOutput("战斗中");
                    CData.console.SendOutput("食物：" + data[5] + "/" + data[6]);
                    CData.console.SendOutput("材料：" + data[7] + "/" + data[8]);
                    CData.console.SendOutput("金钱：" + data[9] + "/" + data[10]);
                    if (!data[11].Equals("0")) CData.console.SendOutput("农场：" + data[11]);
                    if (!data[12].Equals("0")) CData.console.SendOutput("矿山：" + data[12]);
                    if (!data[13].Equals("0")) CData.console.SendOutput("村庄：" + data[13]);
                    if (!data[14].Equals("0")) CData.console.SendOutput("要塞：" + data[14]);
                    if (!data[4].Equals("0")) CData.console.SendOutput("城市");
                    break;
                case "city":
                    if (data.Length == 1)
                    {
                        CData.console.SendOutput("当前地图格没有城市");
                    }
                    else
                    {
                        if (data[1].Equals("1")) CData.console.SendOutput("敌方城市");
                        CData.console.SendOutput("领地：" + data[2]);
                        CData.console.SendOutput("粮仓：" + data[3] + " | 工房：" + data[4] + " | 市场：" + data[5] + " 法院：" + data[6]);
                    }
                    break;
                case "country":
                    CData.console.SendOutput("城市：" + data[1] + " | 领地：" + data[2]);
                    CData.console.SendOutput("近战技术：" + data[3] + " - " + data[4] + " | 投射技术：" + data[5] + " - " + data[6]);
                    CData.console.SendOutput("攻城技术：" + data[7] + " - " + data[8] + " | 骑乘技术：" + data[9] + " - " + data[10]);
                    CData.console.SendOutput("农业技术：" + data[11] + " - " + data[12] + " | 工业技术：" + data[13] + " - " + data[14]);
                    CData.console.SendOutput("商业技术：" + data[15] + " - " + data[16] + " | 建造技术：" + data[17] + " - " + data[18]);
                    CData.console.SendOutput("食物：" + data[19] + " | 人口：" + data[20]);
                    break;
                case "combat":
                    if (data.Length == 1)
                    {
                        CData.console.SendOutput("角色不处于战斗中");
                    }
                    else
                    {
                        CData.console.SendOutput("设施防御度：" + data[1] + " | 防御度临界值：" + data[2]);
                        CData.console.SendOutput("进攻方人数：" + data[3] + " | 防守方人数：" + data[4]);
                    }
                    break;
                default:
                    CData.console.SendOutput(content);
                    break;
            }
        }
    }
}
